package com.wiscamp.ninechapters.problems.domain.repositories;

import com.wiscamp.ninechapters.problems.domain.models.exams.PaperPart;
import com.wiscamp.ninechapters.problems.domain.models.exams.PaperSection;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;

import java.util.Collection;

public interface PaperPartRepository {
    PaperPart getPaperPart(@Min(0) long partId);

    Collection<PaperPart> getPaperPartsByExam(@Min(0) long examId);

    PaperPart savePaperPart(@NotNull PaperPart part);

    boolean deletePaperPart(@Min(0) long partId);

    PaperSection getPaperSection(@Min(0) long sectionId);

    Collection<PaperSection> getPaperSectionsByPart(@Min(0) long partId);

    Collection<PaperSection> getPaperSectionsByPartIds(@NotEmpty Collection<Long> partIds);

    PaperSection savePaperSection(@NotNull PaperSection section);

    boolean deletePaperSection(@Min(0) long sectionId);
}
